//package com.mine.eureka.controllers;
//
//import java.net.InetSocketAddress;
//import java.util.List;
//import com.alibaba.otter.canal.client.CanalConnector;
//import com.alibaba.otter.canal.client.CanalConnectors;
//import com.alibaba.otter.canal.protocol.CanalEntry.*;
//
//import com.alibaba.otter.canal.protocol.Message;
//import com.google.protobuf.InvalidProtocolBufferException;
//import org.bouncycastle.asn1.dvcs.DVCSObjectIdentifiers;
///**
// * @author Jim
// * @date 1:19 上午 2022/4/19
// * @description
// * @email:huwmz04153277@126.com
// */
//public class www {
//    public static void main(String[] args) {
//        CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress("127.0.0.1",11111),"example","","");
//        int batchSize = 1000;
//        int emptyCount = 0;
//        try {
//            connector.connect();
//            connector.subscribe(".*\\..*");
//            connector.rollback();
//            int totalEntryCount = 1200;
//            while (emptyCount < totalEntryCount) {
//                Message message = connector.getWithoutAck(batchSize);
//                long batchId = message.getId();
//                int size = message.getEntries().size();
//                if (batchId == -1 || size == 0){
//                    emptyCount++;
//                    System.err.println(emptyCount);
//                    Thread.sleep(1000);
//                }else {
//                    emptyCount =0;
//                    printEntity(message.getEntries());
//                }
//                connector.ack(batchId);
//            }
//        }catch (Exception e){
//
//        }finally {
//            connector.disconnect();
//        }
//    }
//    public static void printEntity(List<Entry> entrys){
//        for (Entry entry : entrys) {
//            if (entry.getEntryType() == EntryType.TRANSACTIONBEGIN || entry.getEntryType() == EntryType.TRANSACTIONEND){
//                continue;
//            }
//            RowChange rowChange = null;
//            try {
//                rowChange = RowChange.parseFrom(entry.getStoreValue());
//            } catch (InvalidProtocolBufferException e) {
//                e.printStackTrace();
//            }
//            EventType eventType = rowChange.getEventType();
//            System.err.println(String.format("=======>binlog[%s,%s],name[%s,%s],eventType:%s",entry.getHeader().getLogfileName()
//                    ,entry.getHeader().getLogfileOffset(),entry.getHeader().getSchemaName(),entry.getHeader().getTableName(),eventType));
//            for (RowData rowData : rowChange.getRowDatasList()) {
//                if (eventType == EventType.DELETE){
//                    printColumn(rowData.getBeforeColumnsList());
//                }else if (eventType == EventType.INSERT){
//                    printColumn(rowData.getAfterColumnsList());
//                }else {
//                    System.err.println("--->before");
//                    printColumn(rowData.getBeforeColumnsList());
//                    printColumn(rowData.getAfterColumnsList());
//                }
//            }
//
//        }
//    }
//    private static void printColumn(List<Column> columns){
//        for (Column column : columns) {
//            System.err.println(column.getName()+":"+column.getValue()+"updata="+column.getUpdated());
//        }
//    }
//}
